package edu.upn.sigemfi.vnf.beans;

import edu.upn.sigemfi.ope.be.Moneda;
import edu.upn.sigemfi.vnf.bc.MonedaDelegate;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

/**
 *
 * @author Administrador
 */
public class MonedaController {

    private MonedaDelegate delegado;
    private Moneda monedaSeleccionada;

    public MonedaController() {
        delegado = new MonedaDelegate();
    }

    public Moneda getMonedaSeleccionada() {
        return monedaSeleccionada;
    }

    public void setMonedaSeleccionada(Moneda monedaSeleccionada) {
        this.monedaSeleccionada = monedaSeleccionada;
    }

    public SelectItem[] getListaMonedasSI() throws Exception {
        SelectItem[] select = null;
        try {
            List<Moneda> monedas = delegado.listar();
            if (monedas != null) {
                select = new SelectItem[monedas.size()];
                int i = 0;
                //select[i++] = new SelectItem(null, "Seleccione un moneda");
                for (Moneda m : monedas) {
                    select[i++] = new SelectItem(m.getDescripcion(), m.getDescripcion());
                }
            } else {
                select = new SelectItem[1];
                select[0] = new SelectItem(null, "no hay monedas registradas");
            }

        } catch (Exception e) {
            throw new Exception("Monedas" + e.getMessage());
        }
        return select;
    }

     public Moneda buscar_Moneda(Long id) throws Exception {
        return buscar(id);
    }
     
    public Moneda buscar(Long idMoneda) {
        try {
            return delegado.buscarPorId(idMoneda);
        } catch (Exception e) {
            mostrarMensaje(e.getMessage(), e.getMessage(), FacesMessage.SEVERITY_ERROR);
        }
        return null;
    }

    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage());
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }
}
